<?php

/**
 * Yii Controller AdminuserController
 *
 * @author <KTD SOFT>
 * @since Jan 10, 2013 - 2:06:32 AM
 */
class AdminuserController extends BackController
{

    public $modelName = 'Admin';

    public function init()
    {
        parent::init();
        $this->controllerMenu   = array();
        $this->controllerMenu[] = array(
            'label' => Yii::t('sub_all', 'All'),
            'url'   => $this->createUrl('adminuser/index', array(
                'lang' => $this->lang,
                    )
            )
        );
        $this->controllerMenu[] = array(
            'label' => 'Đổi mật khẩu',
            'url'   => $this->createUrl('adminuser/changepassword', array(
                'lang' => $this->lang,
                    )
            )
        );
        $this->controllerMenu[] = array(
            'label' => Yii::t('sub_all', 'Activity'),
            'url'   => $this->createUrl('adminuser/activity', array(
                'lang' => $this->lang,
                    )
            )
        );
        $this->controllerMenu[] = array(
            'label' => 'Cài đặt quyền',
            'url'   => $this->createUrl('auth/permit', array(
                'lang' => $this->lang,
                    )
            )
        );
    }

    public function actionActivity()
    {
        $this->model = Activity::model();
        $this->render('activity');
    }

    public function save($action = 'Create')
    {
        if (parent::save($action))
        {
            if (isset($_POST['role']))
            {
                $auth = Yii::app()->authManager;

                // Xóa các quyền đã gán trước đây đi
                if ($auth->getAuthAssignments($this->model->id))
                    foreach ($auth->getAuthAssignments($this->model->id) as $item)
                        $auth->revoke($item->itemName, $this->model->id);

                // Gán quyền mới vào
                $auth->assign($_POST['role'], $this->model->id);
            }
            return TRUE;
        }
        return FALSE;
    }

    public function actionChangePassword()
    {
        $this->model = $this->user;
        $this->model->setScenario('changePassword');
        $action      = Yii::t('adminuser', 'Change Password');

        // if it is ajax validation request
        if (isset($_POST['ajax']))
        {
            echo CActiveForm::validate($this->model);
            Yii::app()->end();
        }

        // collect user input data
        if (isset($_POST[$this->modelName]))
        {
            $this->model->attributes = $_POST[$this->modelName];
            // validate user input and redirect to the previous page if valid
            if ($this->model->validate())
            {
                // Thông báo nếu cập nhật bị lỗi
                $noti = Yii::t('form', 'Can\'t do {action} , please try again!', array(
                            '{action}' => Yii::t('form', $action)
                ));

                // Thông báo nếu cập nhật thành công
                if ($this->model->save())
                    $noti = Yii::t('form', '{action} successful!', array(
                                '{action}' => Yii::t('form', $action)
                    ));
                Yii::app()->user->setFlash('noti', $noti);

                $this->refresh();
            }
        }

        $this->pageTitle = $action;
        $this->render('password');
    }

    function actionAuth()
    {
        $this->redirect($this->createUrl('auth/permit', array(
                    'lang' => $this->lang
        )));
    }

}

/** 
 * End file AdminController
 */
